package com.myrpc.loadBalance;

import com.myrpc.transfer.dto.RpcRequest;

import java.util.List;

/**
 * 实现负载均衡
 */
public interface LoadBalance {
    /**
     * 对请求进行负载均衡，从给定的可请求微服务实例中，选定一个进行请求
     * @param serviceList 可请求的微服务实例列表
     * @param rpcRequest Ppc请求
     * @return 负载均衡计算后，认定应该请求的微服务实例
     * @param <T> 微服务实例
     */
    <T> T selectService(List<T> serviceList, RpcRequest rpcRequest);
}
